// 1- 关键字为type
// const my:(number | string | boolean) = 1;
// const my2:(number | string | boolean) = 1;

// type TMy = (number | string | boolean);
// let my3:TMy = "abc";
// my3 = 1;
// my3 = true;
// my3 = {}


// 2- 描述对象
// type TOne = {
//     readonly userName:string,
//     age?:number,
//     sex:string
// }
// const obj:TOne = {
//     userName:"zhangsan",
//     // age:12,
//     sex:"男"
// }
// obj.userName = "LISI";


// type与interface的区别
// 1- interface可以重复,会将两者进行合并
// interface Imy {
//     userName:string
// }
// interface Imy {
//     age:number
// }
// const obj:Imy={
//     userName:"zhangsan",
//     age:12
// }



// 2- type不允许重复
// type IOne = {
//     userName:string
// }
// type IOne = {
//     age:string
// }


// 3- interface可以继承
// interface IOne  {
//     userName:string
// }
//
// interface ITwo extends IOne {
//     age:number
// }
// const obj:ITwo = {
//     userName:"zhangsan",
//     age:12
// }
// const obj2:IOne = {
//     userName:"lisi"
// }

// 4- type可以借助&实现继承
type TOne = {
    userName:string
}
type TTwo = {
    age:number
} & TOne;
const obj:TTwo = {
    userName:"zhangsan",
    age:12
}